group { name: "efl/pointer";
   data.item: "version" "123";
   images.image: "pointer.png" COMP;
   parts {
      part { name: "base"; mouse_events: 0;
         description { state: "default" 0.0;
            aspect: 1.0 1.0;
            min: 32 32;
            /* force a specific aspect ratio so
             * when it gets scaled it wont squash
             * or stretch */
            aspect_preference: BOTH;
            /* both axes control aspect - thus it
             * will be WITHIN the bounds the axes
             * of thre part describe */
            image.normal: "pointer.png";
            color_class: "/fg/normal/pointer/base";
         }
         description { state: "clicked" 0.0;
            inherit: "default" 0.0;
            color_class: "/fg/pressed/pointer/base";
         }
      }
      part { name: "efl.hotspot"; type: SWALLOW;
         /* this is a "fake" swallow part
          * that is used by e to determine
          * the pointer hotspot - or where
          * the actual mouse events get
          * reported from on the cursor */
         description { state: "default" 0.0;
            visible: 0;
            fixed: 1 1;
            rel1 {
               /* the hotspot will scale with the cursor here */
               to: "base";
               relative: (5/32) (5/32);
               offset: 0 0;
            }
            rel2 {
               to: "base";
               relative: (5/32) (5/32);
               offset: 0 0;
            }
         }
      }
   }
   programs {
      program { signal: "efl,action,mouse,down"; source: "efl";
         action: STATE_SET "clicked" 0.0;
         target: "base";
         after: "fade";
      }
      program { name: "fade";
         action: STATE_SET "default" 0.0;
         transition: SINUSOIDAL 0.5;
         target: "base";
      }
   }
}

group { name: "efl/pointer:bottom_right_corner";
   inherit: "efl/pointer";
   data.item: "version" "123";
   parts {
      part { name: "box"; type: RECT;
         insert_after: "base";
         description { state: "default" 0.0;
            color_class: "/fg/normal/pointer/manipulator";
            rel1.relative: 0.3 0.3;
            rel2.relative: 0.7 0.7;
         }
         description { state: "p1" 0.0;
            inherit: "default" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 1.0;
         }
      }
   }
   programs {
      program { name: "box1";
         signal: "load"; source: "";
         action: STATE_SET "p1" 0.0;
         transition: SINUSOIDAL 0.5;
         target: "box";
         after: "box2";
      }
      program { name: "box2";
         action: STATE_SET "default" 0.0;
         transition: SINUSOIDAL 0.5;
         target: "box";
         after: "box1";
      }
   }
}

group { name: "efl/pointer:bottom_left_corner";
   inherit: "efl/pointer:bottom_right_corner";
   data.item: "version" "123";
   parts {
      part { name: "box";
         description { state: "default" 0.0;
            rel1.relative: 0.7 0.3;
            rel2.relative: 1.0 0.7;
         }
         description { state: "p1" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 1.0;
         }
      }
   }
}


group { name: "efl/pointer:bottom_side";
   inherit: "efl/pointer:bottom_right_corner";
   data.item: "version" "123";
   parts {
      part { name: "box";
         description { state: "default" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 0.7;
         }
         description { state: "p1" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 1.0;
         }
      }
   }
}

group { name: "efl/pointer:top_right_corner";
   inherit: "efl/pointer:bottom_right_corner";
   data.item: "version" "123";
   parts {
      part { name: "box";
         description { state: "default" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 0.7 0.7;
         }
         description { state: "p1" 0.0;
            rel1.relative: 0.3 0.0;
            rel2.relative: 1.0 0.7;
         }
      }
   }
}

group { name: "efl/pointer:top_left_corner";
   inherit: "efl/pointer:bottom_right_corner";
   data.item: "version" "123";
   parts {
      part { name: "box";
         description { state: "default" 0.0;
            rel1.relative: 0.6 0.6;
            rel2.relative: 1.0 1.0;
         }
         description { state: "p1" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 1.0;
         }
      }
   }
}

group { name: "efl/pointer:top_side";
   inherit: "efl/pointer:bottom_right_corner";
   data.item: "version" "123";
   parts {
      part { name: "box";
         description { state: "default" 0.0;
            rel1.relative: 0.3 0.6;
            rel2.relative: 1.0 1.0;
         }
         description { state: "p1" 0.0;
            rel1.relative: 0.3 0.3;
            rel2.relative: 1.0 1.0;
         }
      }
   }
}
